package d7_com.itheima.bigdecimal;

import java.math.BigDecimal;
import java.math.RoundingMode;

public class Test {
    public static void main(String[] args) {
        // 目标:掌握BigDecimal的使用:解决小数运算失真的问题。
        double a=0.1;
        double b=0.2;
        double c=a+b;
        System.out.println(c);
        System.out.println("------------------------------------");

        //把他们变成字符串封装成BigDecimal对象来运算。
        BigDecimal a1 = new BigDecimal(Double.toString(a));
        BigDecimal b1 = new BigDecimal(Double.toString(b));
        //!推荐用以下方式:把小数转换成字符串再得到BigDecimal对象来使用(更简洁)
        BigDecimal a2 = BigDecimal.valueOf(a);
        BigDecimal b2 = BigDecimal.valueOf(b);

        BigDecimal c1 = a2.add(b2);// 加法
        BigDecimal c2 = a2.subtract(b2);// 减法
        BigDecimal c3 = a2.multiply(b2);//乘法
        BigDecimal c4 = a2.divide(b2);//除法
        System.out.println(c1);
        BigDecimal i = BigDecimal.valueOf(0.1);
        BigDecimal j = BigDecimal.valueOf(0.3);
        BigDecimal k = i.divide(j, 2, RoundingMode.HALF_UP);//除
        System.out.println(k);
        // 把BigDecimal对象转换成double类型
        double rs = k.doubleValue();
        System.out.println(rs);
    }
}
